1. Field of the Invention
The present invention relates to an information processing apparatus that is connectable to a device, a recording medium having a program embodied therein, the program causing a computer to function as such an information processing apparatus, and an information processing system including a device and an information processing apparatus connected to each other.
2. Description of the Related Art
If an information processing apparatus such as, e.g., a personal computer (hereinafter referred to simply as a “PC”) is connected to peripheral devices such as, e.g., a printer, a scanner, and a facsimile (fax) machine on a network, the PC includes device drivers for converting data generated by applications installed therein into data processable by the peripheral devices.
FIG. 1 is a diagram illustrating an exemplary network configuration of a related-art information processing system 10 including first and second PCs 11 and 12 and first and second printers 13 and 14.
With reference to FIG. 1, the information processing system 10 includes the first and second PCs 11 and 12, the first and second printers 13 and 14, and a network 15 interconnecting the PCs 11 and 12 and the printers 13 and 14 for enabling data communications among them.
The first PC 11 has an application 16 that runs on an OS (Operating System), a first printer driver 17 for the first printer 13, and a second printer driver 18 for the second printer 14.
The second PC 12 generally has the same configuration as the first PC 11.
The first printer driver 17 includes a user interface (UI) module 171, a print data generating module 172, a device information processing module 173, and a storage unit 174.
The UI module 171 is adapted to display a setting screen for configuring the first printer 13 based on device information about various functions of a printer corresponding to the first printer driver 17, i.e., the first printer 13. A user enters settings of the functions of the first printer 13 on the setting screen displayed by the UI module 171. The UI module 171 specifies processing content to be executed by the first printer 13 based on the settings entered by the user.
The print data generating module 172 is adapted to convert document data and the like created or read by the application 16 into print data readable by the first printer 13 according to the settings of the functions of the first printer 13 entered by the user. The device information processing module 173 is adapted to read out device information of the first printer 13 from the storage unit 174 to enable the UI module 171 to display the setting screen. The storage unit 174 is adapted to store the device information of the first printer 13.
The second printer driver 18 generally has the same configuration as the first printer driver 17.
The term “device information” as used herein includes file information that associates device configuration information of a peripheral device, such as a printer, with command information related thereto. The “processing content” as used herein includes information about device initialization, environments of a peripheral device, etc., and is stored in a DEVMODE structure. FIGS. 2A and 2B are diagrams schematically illustrating exemplary data structures of the device information and the processing content, respectively, according to a related-art technique.
Referring to FIG. 2A, the device information is stored in a table data structure. The data structure shown in FIG. 2A includes columns 21, 22, and 23. The column 21 contains the names of functions of a printer. The column 22 contains data indicating whether the functions shown in the column 21 are executable. If the column 22 contains data indicating that a function is executable and the presence of options for advanced settings for executing the function, the column 23 contains the options. For example, in the case of a printer, “options” for executing a “staple” function may include positions at which the paper is stapled (“upper right”, “lower left”, etc.).
Referring to FIG. 2B, similar to the device information shown in FIG. 2A, the processing content is stored in a table data structure for ease of understanding. The data structure shown in FIG. 2B includes columns 24, and 25. The column 24 contains the names of the functions of the printer. The column 25 contains a print setting entered on the setting screen by the user, i.e., values of the options selected by the user from the column 23 of the device information shown in FIG. 2A.
The following describes operations of the printer driver 17 in the related-art information processing system shown in FIG. 1.
For instance, if a user requests to configure print settings of the first printer 13 of FIG. 1, in step S101, a setting screen calling request is sent from the application 16 to the UI module 171 so as to display a setting screen for print setting of the first printer 13. Upon reception of the request from the application 16, in step S102, the UI module 171 sends a device information retrieval instruction to the device information processing module 173 so as to retrieve device information of the first printer 13. The device information processing module 173 reads out the device information stored in the storage unit 174 (FIG. 1) in step S103, and sends the read device information to the UI module 171 in step S104. In step S105, the UI module 171 displays the setting screen for specifying print settings of the first printer 13 on a display unit (not shown) such as a monitor based on the device information sent from the device information processing module 173. In step S106, a user enters print setting values for the first printer 13 on the setting screen displayed by the UI module 171 with use of input units such as a mouse and a keyboard (not shown). In step S107, the UI module 171 specifies processing content to be executed by the first printer 13 according to the setting values entered by the user and, in step S108, sends the specified processing content to the application 16. After that, in step S109, the application 16 stores the processing content.
In step S110, on the application 16, the user makes a request for printing by the first printer 13. Then, in step S111, the print data generating module 172 reads in the processing content stored in the application 16. In step S112, the print data generating module 172 generates print data readable by the first printer 13 based on the read processing content and, in step S113, sends the generated print data to the first printer 13 or a spooler (not shown). After that, in step S114, the print data generating module 172 sends a transmission completion report to the application 16. In step S115, the application 16 receives the transmission completion report. Thus, print processing is completed.
As described above, according to related art, a PC typically includes printer drivers one for each printer connected to the PC. In other words, a PC includes the same number of printer drivers as the number of printers to be used.
Japanese Patent Laid-Open Publication No. 2004-310488 (Patent Document 1), for example, discloses a printing system that includes a single driver for printers of the same type. In the printing system disclosed in Patent Document 1, the same identifier is assigned to printers of the same type, which have different network IDs, thereby eliminating the need for installing the same number of printer drivers as the number of the printers into a terminal that manages the printers.
In the case of replacing a current device with a new device for reasons such as service life or failure, if the new device has an additional new function although the type of the new device is the same as the current device, a device driver supporting the added function needs to be installed in an information processing apparatus.
Japanese Patent Laid-Open Publication No. 2005-173701 (Patent Document 2), for example, discloses an information processing apparatus that adds a new function by installing a plug-in module in place of installing an entire driver.
According to the printing system disclosed in Patent Document 1, only when all the printers are of the same type, the terminal does not require more than one printer driver. However, if the printers are of the different types, plural printer drivers need to be installed in the terminal.
According to the information processing apparatus disclosed in Patent Document 2, users need to select a plug-in module to be added from a list of available plug-in modules. That is, the users need to know the functions of the available plug-in modules, which remains a burden to the users.
Recently, there have been developed so-called universal drivers that can be commonly used not only among devices of the same vendor but also devices of different vendors. Presently, however, such a universal driver only has device information about functions common to those devices. Accordingly, in many cases, it is impossible to use a function specific to each device. Another problem with such a universal driver is that, if a function is added to a device supported by a universal driver, another universal driver needs to be installed.